home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 526-550 / disk_540 / browser / browserii_src.lzh / Startup.c < prev    next >
C/C++ Source or Header  |  1991-05-08  |  2KB  |  79 lines

  1. /*
  2.  *    Startup.c - Copyright © 1991 by S.R. & P.C.
  3.  *
  4.  *    Created:    18 Feb 1991  11:36:37
  5.  *    Modified:    01 May 1991  21:16:55
  6.  *
  7.  *    Make>> make
  8.  */
  9.  
  10.  
  11. extern struct ParMBase *ParMBase;
  12. extern struct ExecBase *SysBase;
  13. extern struct ArpBase *ArpBase;
  14. extern struct GfxBase *GfxBase;
  15. extern struct IntuitionBase *IntuitionBase;
  16. extern struct IconBase *IconBase;
  17. extern struct LayersBase *LayersBase;
  18. extern struct ReqLib *ReqBase;
  19.  
  20. extern struct Process *MainProcess;
  21. extern struct WBStartup *WBenchMsg;
  22.  
  23.  
  24. long DosWrite(BPTR file, char *buffer, long length);
  25. #pragma amicall(DOSBase, 0x30, DosWrite(d1,d2,d3))
  26.  
  27. void main(void);
  28.  
  29.  
  30. void exit(int code)
  31. {
  32.     if (WBenchMsg)
  33.     {
  34.         Forbid();
  35.         ReplyMsg((struct Message *)WBenchMsg);
  36.     }
  37.     CloseLibrary(ParMBase);
  38.     Exit(code);
  39. }
  40.  
  41.  
  42. void _main(long alen, char *aptr)
  43. {
  44.     struct Library *DOSBase;
  45.     register struct Process *pp;
  46.  
  47.     MainProcess = pp = (struct Process *)SysBase->ThisTask;
  48.     if (!pp->pr_CLI) {
  49.         WaitPort(&pp->pr_MsgPort);
  50.         WBenchMsg = (struct WBStartup *)GetMsg(&pp->pr_MsgPort);
  51.     }
  52.     if (!(ParMBase = (struct ParMBase *)OpenLibrary("parm.library",1L))) {
  53.         if (pp->pr_CLI && (DOSBase = OpenLibrary("dos.library",0L))) {
  54.             DosWrite(pp->pr_COS, "You need parm.library V1+\n", 26L);
  55.             DosWrite(pp->pr_COS, "You need arp.library V39+\n", 26L);
  56.             CloseLibrary(DOSBase);
  57.         }
  58.         if (WBenchMsg) {
  59.             Forbid();
  60.             ReplyMsg((struct Message *)WBenchMsg);
  61.         }
  62.         return;
  63.     }
  64.     ArpBase = ParMBase->ArpBase;
  65.     ReqBase = ParMBase->ReqBase;
  66.     IconBase = ParMBase->IconBase;
  67.     LayersBase = ParMBase->LayersBase;
  68.     IntuitionBase = (struct IntuitionBase *)ArpBase->IntuiBase;
  69.     GfxBase = (struct GfxBase *)ArpBase->GfxBase;
  70.  
  71.     if (WBenchMsg)
  72.         CurrentDir(WBenchMsg->sm_ArgList->wa_Lock);
  73.  
  74.     main();
  75.  
  76.     exit(0);
  77. }
  78.  
  79.